/**
 * 
 */
package modelo;


/**
 * Par de V�rtices Origem -> Destino
 * 
 * @author Rogerio
 *
 */
public class Aresta{
	
	private Vertice origem;
	private Vertice destino;
	private int peso;
	
	public Aresta(Vertice origem, Vertice destino, int peso) {
		this.origem = origem;
		this.destino = destino;
		this.peso = peso;
	}

	/**
	 * @return the origem
	 */
	public Vertice getOrigem() {
		return origem;
	}

	/**
	 * @param origem the origem to set
	 */
	public void setOrigem(Vertice origem) {
		this.origem = origem;
	}

	/**
	 * @return the destino
	 */
	public Vertice getDestino() {
		return destino;
	}

	/**
	 * @param destino the destino to set
	 */
	public void setDestino(Vertice destino) {
		this.destino = destino;
	}
	
	/**
	 * @return the peso
	 */
	public int getPeso() {
		return peso;
	}

	/**
	 * @param peso the peso to set
	 */
	public void setPeso(int peso) {
		this.peso = peso;
	}
	
	/**
	 * Usado para compara��o nos Sets e Lists
	 */
	@Override
	public boolean equals(Object aresta) {
		if( (((Aresta)aresta).getOrigem().equals(this.origem) && ((Aresta)aresta).getDestino().equals(this.destino)) || 
			(((Aresta)aresta).getOrigem().equals(this.destino) && ((Aresta)aresta).getDestino().equals(this.origem)) ){
			return true;
		}else{
			return false;
		}
    }
	
	/**
	 * 
	 */
	@Override
	public int hashCode() {
		return (origem.toString() + destino.toString()).hashCode();
	}
	
	@Override
	public String toString() {
		return this.getOrigem()+"->"+this.getDestino()+" p:"+this.peso;
	}
}
